* {
  font-family: "Barlow", sans-serif;
  box-sizing: border-box;
}

body,
html {
  width: 100%;
  height: 100%;
  font-family: "Barlow", sans-serif;
}

/* ------------------------------------------------------------------- */
/* NAV BAR */
/* ------------------------------------------------------------------- */
.navbar {
  background-color: #3dbeff;
}

.navbar-brand {
  color: white;
}

.navbar-brand:hover {
  color: white;
  /* due to bootstraps default styling, this was added to stop the logo from changing color when hovered over */
}

.navbar .nav-item {
  margin-right: 1rem;
  /* adding more space between the nav links, as the default space added by bootstrap wasn't enough. */

  font-weight: 600;
}

.nav-link {
  color: white;
  /* all nav links have the color, white, as opposed to their initial color. */
}

.contact-btn {
  background-color: white;
  color: black;
  font-family: "Fraunces", serif;
  font-weight: 700;
}

.contact-btn:hover {
  color: white;
  background-color: #ffffff70;
}

/* ----------------------------------------------------------------- */
/* (#)INTRO SECTION */
/* ----------------------------------------------------------------- */

#intro > div {
  height: 91.3vh; /* makes the container take up the remaining height of the view port left by the navbar so that both the navbar and the intro section can be seen in a single glance without scrolling.... you can add a bright colored border to both the nav bar and the intro section to see what i'm saying */
  background-image: url(images/desktop/image-header.jpg);
  background-position: center;
  background-size: cover;
}

.intro-section-content {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
  height: 60%;
  /* this styling was done to position the header text and arrow icon */
}

.intro-section-content h1 {
  font-family: "Fraunces", serif;
  font-weight: 900;
  color: white;
  font-size: 5rem;
  letter-spacing: 0.5rem;
  text-align: center;
  font-size: clamp(2rem, 5vw + 1rem, 5rem);
  /* this font-size was added to make the font size responsive */
  /* the font size will be 2rem when the screen is small, 5vw + 1rem when the screen is medium and 5rem when the screen is large */
}

/* ------------------------------------------------------------------- */
/* MAIN-CONTENT SECTION */
/* ------------------------------------------------------------------- */
.main-content-item {
  height: 70vh;
}

.main-content-item h1,
.main-content-item h2,
h4,
h1,
h5,
h6,
h3 {
  font-family: "Fraunces", serif;
  font-weight: 900;
}

.main-content-item.text-only {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 4rem 6rem;
  background-color: #fffbf8;
}

.main-content-item.text-only a {
  color: black;
  font-family: "Fraunces", serif;
  font-weight: 700;
  text-decoration-thickness: 0.4rem;
}

a.yellow-link {
  text-decoration-color: #faf1b8;
  transition: all 0.2s ease-in-out;
}

a.red-link {
  text-decoration-color: #ffdbd2;
  transition: all 0.2s ease-in-out;
}

a.yellow-link:hover {
  text-decoration-color: #ffdf28;
}

a.red-link:hover {
  text-decoration-color: #fc4c46;
}

.main-content-item.text-only p {
  margin: 1rem 0px;
}

.main-content-item.img-only-1 {
  background-image: url(images/desktop/image-transform.jpg);
}

.main-content-item.img-only-2 {
  background-image: url(images/desktop/image-stand-out.jpg);
}

.main-content-item.img-with-text {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}

.main-content-item.img-with-text div.text {
  text-align: center;
  height: 30%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.main-content-item.img-with-text.iwt-2 div.text p {
  align-self: center;
  margin: auto;
}

.main-content-item p {
  font-weight: 500;
}
.main-content-item.iwt-1 {
  background-image: url(images/desktop/image-graphic-design.jpg);
}

.iwt-1 {
  color: #20544a;
}

.main-content-item.iwt-2 {
  background-image: url(images/desktop/image-photography.jpg);
}

.iwt-2 {
  color: #1a5768;
}

.bgi {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  /* this style applies to all items within the main-content section that have a background image */
}

/* ----------------------------------------------------------------- */
/* TESTIMONIAL SECTION */
/* ----------------------------------------------------------------- */

#testimonials {
  height: 98vh;
  min-height: fit-content;
  background-color: #fffbf8;
}

#testimonials .centered {
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  align-items: center;
  min-height: fit-content;
  height: 80%;
}

#testimonials h3 {
  color: #a9a9ac;
}

.testimony p {
  color: #7b7c81;
  margin: 2.5rem 0px;
  font-weight: 700;
  padding: 0px 2rem;
}

.testimony-cards-container img {
  width: 5rem;
  height: auto;
}

.name-and-profession p {
  font-weight: 700;
  color: #a9a9ac;
}

/* ----------------------------------------------------------------- */
/* EXTRAS SECTION */
/* ----------------------------------------------------------------- */

div.extras-container {
  min-height: fit-content;
  height: 50vh;
}

div.extras-container div img {
  object-fit: cover;
  height: 100%;
  width: 100%;
}

/* ----------------------------------------------------------------- */
/* FOOTER SECTION */
/* ----------------------------------------------------------------- */
footer {
  background-color: #90d4c5;
  min-height: fit-content;
  height: 50vh;
}

div.footer {
  min-height: fit-content;
  height: 80%;
}

div.footer-logo-container {
  width: fit-content;
}

.footer-logo {
  color: #2d7565;
  font-size: xx-large;
}

footer .footer-links {
  min-width: fit-content;
  width: 20vw;
}

.socials-links {
  min-width: fit-content;
  width: 10vw;
}

footer a {
  text-decoration: none;
  color: #2d7565;
  font-weight: 600;
  transition: all 0.2s ease-in-out;
}

footer a:hover {
  color: white;
}

/* ----------------------------------------------------------------- */
/* MOBILE VIEW STYLES */
/* ----------------------------------------------------------------- */

@media (max-width: 767px) {
  /* ----------------------------------------------------------------- */
  /* NAV BAR */
  /* ----------------------------------------------------------------- */
  .navbar-collapse {
    position: absolute; /* takes the container of the nav links outside of the nav bar just like in the ui design of the web page */
    width: 80%;
    left: 50%; /* moves the element's left edge to the center of the parent. */
    transform: translateX(
      -50%
    ); /* shifts the element itself left by 50% of its own width—so it ends up perfectly centered. */
    top: 100%; /* so that it sits right under the navigation bar when displayed */
    background-color: white;
    padding-bottom: 1rem;
  }

  .navbar li.nav-item {
    margin-right: 0;
    margin-left: 0;
    text-align: center;
    /* i used the kind of specificity on this element because without it the style wouldn't overwrite bootstrap's default style */
  }

  .nav-item {
    margin: 0.4rem 0px;
  }

  .nav-link.contact-btn {
    display: inline-block;
    /* to make the contact button not to take up the entire width of the parent as it was set that by bootstrap */

    background-color: yellow;
    padding: 0.7rem 2rem;
  }

  .nav-item .nav-link {
    color: black;
  }

  .navbar-toggler-icon {
    filter: brightness(0) invert(1);
    /* this was added to make the hamburger icon white */
  }

  .navbar-toggler:focus {
    box-shadow: none;
    /* this was added to remove the blue outline that appears when the hamburger icon is clicked */
  }

  /* ----------------------------------------------------------------- */
  /* (#)INTRO SECTION */
  /* ----------------------------------------------------------------- */
  #intro > div {
    background-image: url(images/mobile/image-header.jpg);
    /* this was added to change the image of the intro section when in mobile view */
  }

  .intro-section-content {
    height: 60%;
    display: flex;
    justify-content: space-evenly;
    /* this styling in general was done to position the header text and arrow icon for mobile view */
  }

  /* ----------------------------------------------------------------- */
  /* (#)MAIN-CONTENT SECTION */
  /* ----------------------------------------------------------------- */

  .main-content-item {
    height: 50vh;
    /* this was added to make the main content section smaller in height when in mobile view */
  }

  .main-content-item.text-only {
    padding: 0rem 2rem;
    /* this was added to make the text-only container smaller in padding when in mobile view */
    text-align: center;
  }

  .main-content-item.img-only-1 {
    background-image: url(images/mobile/image-transform.jpg);
    background-position: center;
  }

  .main-content-item.img-only-2 {
    background-image: url(images/mobile/image-stand-out.jpg);
    background-position: center;
  }

  /* ----------------------------------------------------------------- */
  /* (#)TESTIMONIALS SECTION */
  /* ----------------------------------------------------------------- */
  #testimonials {
    height: auto;
  }
  .centered {
    height: auto;
  }

  #testimonials .centered h3#testimony-title {
    padding: 4rem 0px 5rem;
  }

  .testimony p {
    padding: 0px 4rem;
  }
}

@media (min-width: 900px) {
  .main-content-item.img-with-text .text {
    padding: 0 2rem;
    /* this was done just to make the display of the text within the last two items of the main-content section to look as close as possible to the UI design of the page */
  }
}

@media (min-width: 768px) and (max-width: 815px) {
  .main-content-item.text-only {
    padding: 0rem 2rem;
    /* this was added to make the text within this container to not overflow */
  }
}

@media (min-width: 1000px) {
  .main-content-item.img-with-text .text {
    padding: 0 6rem;
    /* this was done just to make the display of the text within the last two items of the main-content section to look as close as possible to the UI design of the page */
  }
}

/* ----------------------------------------------------------------- */
/* footer============= */
@media (max-width: 768px) {
  /* ----------------------------------------------------------------- */
  /* FOOTER SECTION */
  /* ----------------------------------------------------------------- */

  footer .footer-links {
    min-width: fit-content;
    width: 40vw;
  }

  footer .socials-links {
    min-width: fit-content;
    width: 30vw;
  }
}

@media (max-width: 530px) {
  /* ----------------------------------------------------------------- */
  /* FOOTER SECTION */
  /* ----------------------------------------------------------------- */

  footer .footer-links {
    min-width: fit-content;
    width: 55vw;
  }

  footer .socials-links {
    min-width: fit-content;
    width: 45vw;
  }
}
/* ---------------------------------------------------------------------- */

/* ADDED PADDING TO THE MAIN CONTENT SECTION FOR DIFFERENT MOBILE SCREENS */
@media (min-width: 550px) and (max-width: 768px) {
  .added-padding {
    padding: 0rem 6rem;
  }
}

@media (min-width: 375px) and (max-width: 549px) {
  .added-padding {
    padding: 0rem 3rem;
  }
}
